package com.ypf.accesslimit.limit;

import java.util.HashMap;
import java.util.concurrent.TimeUnit;

public interface AccessLimiter {
    /**
     * 检测指定的key是否收到访问限制
     * @param key  限制接口的标识
     * @param times 访问次数
     * @param per 一段时间
     * @param unit 时间单位
     * @return
     */
    public boolean isLimited(String key, Long times, Long per, TimeUnit unit);


    /**
     * 增加一条接口限流规则
     * @param redisKey
     * @param map
     * @return
     */
    public void addLimitInfo(String redisKey, HashMap map);

    /**
     * 查询接口限流规则
     * @param redisKey
     * @return
     */
    public HashMap getLimitInfo(String redisKey);

    /**
     * 删除接口限流规则
     * @param key
     */
    public void deleteLimited(String key);



}
